<?php

/*
 * Modelo: "datos_sem.php"
 * Copyright 2011 SISVOX.
 *
 * Licenciado bajo SISVOX, Version 1.0 (la "Licencia");
 * El codigo presente que compone este Software es propiedad unica y
 * exclusivamente de SISVOX, por lo tanto, usted no podrá utilizar este
 * archivo excepto en cumplimiento de la Licencia ofrecida por SISVOX.
 * Usted puede obtener una copia de la Licencia en:
 *
 *      Soluciones Integrales de Software Vox (SISVOX)
 *                 http://www.sisvox.com
 *
 *     - Carlos Calvo      <ccalvo@sisvox.com>
 *     - Andres Hernandez  <ahernandez@sisvox.com>
 *
 * A menos que sea requerido por la ley aplicable o se acuerde por escrito,
 * el software distribuido bajo la licencia se distribuye "TAL CUAL", CON
 * LAS GARANTIAS Y CONDICIONES expresadas en la "Licencia".
 */


class Datos_sem {
    
	/* Nombre de las Variables del Modelo (INFORMATIVO)
	
	*/
	
	// Variable para los resultados de las Consultas
    private $respuesta;
	
	// Tablas del Modelo
    private $tsmist_datos_sem 		= "smist_datos_sem";
	private $tsmist_tipo_pos 		= "smist_tipo_pos";
	private $tsmist_estad_con 		= "smist_estad_con";
	private $tsmist_model_con 		= "smist_model_con";
	
	
    // =================================================================================================================
    //	FUNCION - INSERTAR LOS DATOS DE UN SEMAFORO
    // =================================================================================================================
	
    public function insertar_datos_sem( $id_senal, $id_tipo_pos, $nro_postes, $nro_caras, $nro_contadores, $id_estad_con, $id_model_con, $nro_fases, $ciclo ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Agregar el Semáforo (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
			$sql = "insert into ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sem ( id_senal, id_tipo_pos, nro_postes, nro_caras, nro_contadores, id_estad_con, id_model_con, nro_fases, ciclo ) 
					values ( $id_senal, $id_tipo_pos, $nro_postes, $nro_caras, $nro_contadores, $id_estad_con, $id_model_con, $nro_fases, $ciclo )";
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Agregar el Semáforo: ".$conexion->getLastMessage();
            }
            else
            {
                $this->retorno[0] = "S";
                $this->retorno[1] = "El Semáforo se ha Agregado con Exito.";
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =================================================================================================================
    //	FUNCION - MODIFICAR LOS DATOS DE UN SEMAFORO
    // =================================================================================================================
	
    public function modificar_datos_sem( $id_senal, $id_tipo_pos, $nro_postes, $nro_caras, $nro_contadores, $id_estad_con, $id_model_con, $nro_fases, $ciclo ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Modificar el Semáforo (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
			$sql = "update ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sem set 
						id_tipo_pos = $id_tipo_pos, 
						nro_postes = $nro_postes, 
						nro_caras = $nro_caras, 
						nro_contadores = $nro_contadores, 
						id_estad_con = $id_estad_con, 
						id_model_con = $id_model_con, 
						nro_fases = $nro_fases, 
						ciclo = $ciclo 
					where id_senal = $id_senal";
			
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            $this->retorno[0] = "S";
            $this->retorno[1] = "El Semáforo se ha Modificado con Exito.";
            
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR LOS DATOS DE UN SEMAFORO DADO SU ID
    // =================================================================================================================
	
    public function consultar_datos_sem( $id_senal ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        $sql = "select ds.id_senal as id_senal, 
					ds.id_tipo_pos as id_tipo_pos, 
					t.nombre as nombre_tipo_pos, 
					ds.nro_postes as nro_postes, 
					ds.nro_caras as nro_caras, 
					ds.nro_contadores as nro_contadores, 
					ds.id_estad_con as id_estad_con, 
					e.nombre as nombre_estad_con, 
					ds.id_model_con as id_model_con, 
					m.nombre as nombre_model_con, 
					ds.nro_fases as nro_fases, 
					ds.ciclo as ciclo 
				from ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sem as ds, 
					".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_tipo_pos as t, 
					".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_estad_con as e, 
					".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_model_con as m 
				where ds.id_senal = $id_senal and 
					ds.id_tipo_pos = t.id_tipo_pos and 
					ds.id_estad_con = e.id_estad_con and 
					ds.id_model_con = m.id_model_con";	
					
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo Consultar los Datos del Semaforo: $id_senal.");
		
		$temparray = $this->respuesta->buscar_fila();
			$lista_datos_sem[0] = $temparray['id_senal'];
			$lista_datos_sem[1] = $temparray['id_tipo_pos'];
			$lista_datos_sem[2] = strtoupper($temparray['nombre_tipo_pos']);
			$lista_datos_sem[3] = $temparray['nro_postes'];
			$lista_datos_sem[4] = $temparray['nro_caras'];
			$lista_datos_sem[5] = $temparray['nro_contadores'];
			$lista_datos_sem[6] = $temparray['id_estad_con'];
			$lista_datos_sem[7] = strtoupper($temparray['nombre_estad_con']);
			$lista_datos_sem[8] = $temparray['id_model_con'];
			$lista_datos_sem[9] = strtoupper($temparray['nombre_model_con']);
			$lista_datos_sem[10] = $temparray['nro_fases'];
			$lista_datos_sem[11] = $temparray['ciclo'];
			
        $conexion->desconectar();
        return $lista_datos_sem;
    }
	
	
	// =================================================================================================================
    //	FUNCION - SINCRONIZAR LOS DATOS DE UN SEMAFORO
    // =================================================================================================================
	
    public function sincronizar_datos_sem( $id_senal, $id_tipo_pos, $nro_postes, $nro_caras, $nro_contadores, $id_estad_con, $id_model_con, $nro_fases, $ciclo ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Sincronizar el Semáforo (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
			$sql = "insert into ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sem ( id_senal, id_tipo_pos, nro_postes, nro_caras, nro_contadores, id_estad_con, id_model_con, nro_fases, ciclo ) 
					values ( $id_senal, $id_tipo_pos, $nro_postes, $nro_caras, $nro_contadores, $id_estad_con, $id_model_con, $nro_fases, $ciclo )";
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Sincronizar el Semáforo :".$conexion->getLastMessage();
            }
            else
            {
                $this->retorno[0] = "S";
                $this->retorno[1] = "El Semáforo se ha Sincronizado con Exito.";
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
}
?>